import pygame
import math

# 1. 初始化Pygame
pygame.init()
screen = pygame.display.set_mode((600, 600))  # 窗口大小
pygame.display.set_caption('跳动的爱心')
clock = pygame.time.Clock()  # 控制帧率

# 2. 心形函数（根据缩放比例生成点）
def heart_scale(scale):
    points = []
    for t in range(0, 360):
        rad = math.radians(t)
        x = scale * (16 * math.sin(rad)**3)
        y = scale * (13 * math.cos(rad) - 5 * math.cos(2*rad) - 2 * math.cos(3*rad) - math.cos(4*rad))
        points.append((300 + x, 300 - y))  # 平移到窗口中心
    return points

# 3. 动态绘制
scale = 10  # 初始缩放比例
direction = 0.1  # 缩放方向（放大/缩小）
running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((255, 255, 255))  # 白色背景
    heart_points = heart_scale(scale)  # 生成当前大小的爱心点

    # 绘制爱心（红色边框+粉色填充）
    pygame.draw.polygon(screen, (255, 105, 180), heart_points, 0)  # 填充粉色
    pygame.draw.polygon(screen, (255, 0, 0), heart_points, 2)       # 红色边框

    # 控制爱心缩放（跳动效果）
    scale += direction
    if scale > 15 or scale < 8:
        direction *= -1  # 反向缩放

    pygame.display.update()  # 更新画面
    clock.tick(30)  # 每秒30帧

pygame.quit()  # 关闭窗口